چطوری میشه

چگونه یک فید RSS سفارشی در داشبورد وردپرس اضافه کنیم

چگونه یک فید RSS سفارشی در داشبورد وردپرس اضافه کنیم

اینترنت پر از منابع عالی است و نگاه کردن به همه چیز سخت است. البته توییتر برای زیر نظر گرفتن گرایش‌ها یا نرم‌افزارهای RSS خوان وجود دارد، اما شما هم مثل من خیلی سرتان شلوغ است، گاهی اوقات آزاردهنده است که 20 نرم‌افزار را همزمان باز کنید. به همین دلیل تصمیم گرفتم از داشبورد وردپرس خود به عنوان یک پلتفرم جهانی برای دسترسی سریع به آن فیدها استفاده کنم. مثالی که امروز می خواهم به اشتراک بگذارم این است که چگونه می توان یک متاباکس RSS سفارشی در داشبورد وردپرس ایجاد کرد.

در اینجا نتیجه نهایی چیزی است که می‌خواهیم ایجاد کنیم:

add-a-custom-rss-dashboard-metabox

مرحله 1: افزونه

برای افزودن این متاباکس باید یک افزونه ایجاد کنیم. بنابراین، به سادگی یک پوشه جدید به نام “my-dashboard-metaboxes” در wp-content/plugins/ ایجاد کنید و در پوشه جدید یک فایل به نام my-dashboard-metaboxes.php ایجاد کنید. این فایل فایل اصلی افزونه خواهد بود. آن را در ویرایشگر اصلی خود باز کنید. کد زیر کدی است که افزونه را تولید می کند. اینجا هیچ چیز واقعا پیچیده ای نیست:

مرحله 2: ثبت Metabox

اکنون که یک افزونه خالی داریم (منظورم افزونه ای است که هیچ کاری انجام نمی دهد)، باید حداقل یک متاباکس را ثبت کنیم تا در داشبورد وردپرس نمایش داده شود. برای انجام این کار، ما باید یک تابع جدید ایجاد کنیم که “wp_dashboard_setup” را قلاب کنید. بیایید این تابع را “rc_mdm_register_widgets()” بنامیم. در داخل این تابع، باید به وردپرس بگوییم که می‌خواهیم یک متاباکس جدید اضافه کنیم، و این هدف هدف “wp_add_dashboard_widget()”. این تابع 4 پارامتر را می پذیرد:

1 – $widget_id (عدد صحیح) (الزامی) یک اسلاگ شناسایی برای ویجت شما. این به عنوان کلاس css و کلید آن در آرایه ویجت ها استفاده می شود.
پیش فرض: هیچ

2 – $widget_name (رشته) (الزامی) این نامی است که ویجت شما در عنوان خود نمایش می دهد.
پیش فرض: هیچ

3 – $callback (رشته) (الزامی) نام تابعی که ایجاد می‌کنید و محتوای واقعی ویجت شما را نمایش می‌دهد.
پیش‌فرض: هیچکدام

4 – $control_callback (رشته) (اختیاری) نام تابعی که ایجاد می‌کنید که ارسال گزینه‌های ویجت (پیکربندی) فرم‌ها را انجام می‌دهد و عناصر فرم را نیز نمایش می‌دهد.

آنچه در اینجا مهم است، سومین پارامتر است، این پارامتری است که توابعی را که در متاباکس بارگذاری می شوند، تعریف می کند. در این مثال “rc_mdm_create_my_rss_box()” نامیده می شود.

/**
 * ثبت تمام متاباکس های داشبورد
 *
 * @access عمومی
 * @از 1.0 
 * @return void
*/

تابع rc_mdm_register_widgets() {
	جهانی $wp_meta_boxes;
	
	wp_add_dashboard_widget('widget_freelanceswitch', __('My RSS Feed', 'rc_mdm'), 'rc_mdm_create_my_rss_box');
}
add_action('wp_dashboard_setup', 'rc_mdm_register_widgets');

مرحله 3: محتوای متاباکس

اگر افزونه را فعال کنید و به داشبورد وردپرس خود بروید، باید یک متاباکس خالی جدید ببینید. اکنون باید محتوای آن را پر کنیم. چیزهای مهم برای این تابع گنجاندن فایل “feed.php” داخلی وردپرس است تا مجاز به استفاده از تابع “fetch_feed()” باشد. لطفاً توجه داشته باشید که ما از “fetch_feed()” استفاده می کنیم زیرا “fetch_rss()”، “get_rss()” و “wp_rss()” منسوخ شده اند. برای یک بار هم که شده، تمام نظرات را مستقیماً در کد گنجانده ام، اما می خواهم توجه شما را به برخی از ویژگی های خوبی که در تابع متاباکس استفاده می کنم، جلب کنم.

اول از همه، “fetch_feed() عملکرد. این یکی برای دریافت و تجزیه محتوای فیدها استفاده می شود. این تابع از کلاس SimplePie استفاده می کند، بنابراین می توانید تقریباً از تمام عملکردهای موجود در آن استفاده کنید.

سپس تابع “human_time_diff()” را داریم که برای نمایش زمان به صورت “human_time_diff()، به عنوان مثال برای نمایش چیزی مانند “2 ساعت پیش”، “4 روز پیش” و غیره… این یک تابع وردپرس است.

و در نهایت “wp_html_excerpt()» برای کوتاه کردن هر محتوای فید.

همه توابع دیگر به خوبی توابع وردپرس را می شناسند یا در کلاس Simple Pie گنجانده شده اند.

این کد است:

/**
 * متاباکس RSS را ایجاد می کند
 *
 * @access عمومی
 * @از 1.0 
 * @return void
*/

تابع rc_mdm_create_my_rss_box() {
	
	// دریافت فید(های) RSS
	include_once(ABSPATH. WPINC. '/feed.php');
	
	// فهرست فیدهای من (url های فید RSS خود را اضافه کنید)
	$my_feeds = آرایه( 
				'http://feeds.feedburner.com/FSAllJobs'، 
				'http://www.wphired.com/feed/?post_type=job_listing' 
				)
	
	// از طریق فیدها حلقه بزنید
	foreach ($my_feeds به عنوان $feed):
	
		// یک شی فید SimplePie را از منبع فید مشخص شده دریافت کنید.
		$rss = fetch_feed( $feed );
		if (!is_wp_error( $rss ) ) : // بررسی می کند که شی به درستی ایجاد شده است 
		    // تعداد کل آیتم‌ها را دریابید و حدی را انتخاب کنید 
		    $maxitems = $rss->get_item_quantity( 3 ); 
		
		    // آرایه ای از تمام آیتم ها، با عنصر 0 (المان اول) شروع می شود.
		    $rss_items = $rss->get_items( 0, $maxitems ); 
	
		    // عنوان RSS را دریافت کنید
		    $rss_title = 'get_permalink().'" target="_blank">'.strtoupper( $rss->get_title() ).''; 
		endif;
	
		// کانتینر را نمایش دهید
		echo '
'; echo ''.$rss_title.''; echo '
'; // فهرست اقلام را در تگ
    شروع می کند echo '
      '; // موارد را بررسی کنید اگر ( $maxitems == 0 ) { echo '
    • '.__('بدون مورد'، 'rc_mdm').'.
    • '; }دیگر { // از طریق هر آیتم فید حلقه بزنید و هر مورد را به عنوان یک لینک نمایش دهید. foreach ($rss_items به عنوان $item): // برای نمایش تاریخ غیر انسانی، خط زیر را لغو نظر کنید //$item_date = $item->get_date( get_option('date_format').' @ '.get_option('time_format') ); // تاریخ انسانی را دریافت کنید (اگر می خواهید از تاریخ غیر انسانی استفاده کنید نظر دهید) $item_date = human_time_diff( $item->get_date('U'), current_time('timestamp')).' '.__('ago', 'rc_mdm'); // شروع به نمایش محتوای مورد در یک تگ
    • کنید پژواک '
    • '; // لینک مورد را ایجاد کنید echo 'get_permalink()%20).'" title="'.$item_date.'">'; // عنوان مورد را دریافت کنید echo esc_html( $item->get_title() ); پژواک ''; // نمایش تاریخ echo ' '.$item_date.'
      '; // محتوای مورد را دریافت کنید $content = $item->get_content(); // مطالب را کوتاه کنید $content = wp_html_excerpt($content, 120). ' [...]'; // نمایش محتوا echo $content; // پایان تگ
    • پژواک '
    • '; endforeach; } // پایان تگ
        echo '
'; endforeach; // پایان فید foreach }

در خط 15 آرایه ای وجود دارد که می توانید هر تعداد فید را که می خواهید قرار دهید. شما همچنین می توانید تعداد هر یک از آیتم های فید را برای نمایش در خط 27 تعیین کنید. در نهایت در خط 50 و 54 می توانید تاریخ انسانی یا تاریخ عادی را انتخاب کنید. این به شما بستگی دارد.

نتیجه گیری

بسیار خوب، بنابراین ما یک متاباکس ساده ایجاد کردیم، اما شما اکنون اصول اولیه ایجاد متاباکس های خود را با محتوای خود دارید. همچنین می‌توانید متاباکس‌های پیش‌فرض وردپرس را حذف کنید و درک کاملی از API ویجت‌های داشبورد، من شما را تشویق می‌کنم، مثل همیشه، نگاهی به کد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا